// 免登录功能
// token时效性
$(() => {
  const time = 1000 * 60 * 120
  // 页面一刷新就判断有没有token, 如果有就跳转到index.html
  // ①从本地存储拿数据
  const token = localStorage.getItem('token')
  // ②如果token变量为null, 说明没有登录过, 就继续走下面的入口函数
  // ③登录过, 就跳转到index.html
  if (token) {
    // 判断这个token是否过期
    const tokenTime = localStorage.getItem('tokenTime')
    // 过期, 阻止跳转, 走登录
    if (+new Date() - tokenTime > time) return
    // 没过期, 有token, 进index.html
    location.href = '/index.html'
    // 跳转到index之后, 获取用户资料的ajax
  }
})

// 入口函数
$(() => {
  // token的作用, 确认是否有权限发某些请求
  // 登录成功之后, 以后的操作里面服务器能记住你是谁?  token就起到关键作用(身份令牌)
  // 登录成功, 就给你发一个具有唯一标识的身份令牌
  // 以后所有的请求, 都要携带身份令牌给服务器, 服务器就知道是谁在操作了

  // token会不会被伪造? 肯定会被伪造   
  // 最大限度解决被伪造问题, 两种方案: ①服务器做token时效性  ②本地做时效性 

  // token存在本地存储, 做永久化存储(本地存储做有效性限制)

  // 点击去注册 #link_reg 让.reg-box盒子显示  .login-box隐藏
  $('#link_reg').on('click', function () {
    $('.reg-box').show().siblings('.login-box').hide()
  })
  // 点击去注册 #link_login 让.login-box盒子显示  .reg-box隐藏
  $('#link_login').on('click', function () {
    $('.login-box').show().siblings('.reg-box').hide()
  })
  // const form = layui.form
  const { form } = layui
  // 自定义校验规则
  form.verify({
    pass: [
      /^[\S]{6,12}$/
      , '密码必须6到12位，且不能出现空格'
    ],
    // repass: function () { },
    // repass: () => { },
    repass (value) { //value拿到的是当前input的值
      // 拿到兄弟Input的值
      const val = $('#form_reg [name="password"]').val()
      // 如果当前输入框的值和兄弟输入框的值不一致
      if (val !== value) return '两次密码不一致'
    }
  });

  // 注册功能
  $('#form_reg').on('submit', function (e) {
    e.preventDefault();
    // 直接拿到表单数据
    const data = $(this).serialize()
    // 发ajax
    $.ajax({
      type: "post",
      url: "/api/reguser",
      data,
      success: function (res) {
        if (res.status != 0) return layer.msg('注册失败!');
        layer.msg('注册成功!');
        $('#link_login').click()
      }
    });
  })

  // 登录功能
  $('#form_login').on('submit', function (e) {
    e.preventDefault();
    // 直接拿到表单数据
    const data = $(this).serialize()
    // 发ajax
    $.ajax({
      type: "post",
      url: "/api/login",
      data,
      success: function (res) {
        if (res.status != 0) return layer.msg('登录失败!');
        layer.msg('登录成功!');
        // 两件事
        // ①跳转到index.html
        location.href = '/index.html'
        // ②存储token同时, 存储获取的时间戳
        localStorage.setItem('token', res.token)
        localStorage.setItem('tokenTime', +new Date())
      }
    });
  })
})

